package com.swordget.service;

import com.swordget.entity.ColumnDesign;
import com.swordget.entity.TableDesign;
import com.swordget.entity.vo.SimplePageRequestVo;
import com.swordget.entity.vo.SimplePageResponseVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

/**
 * @Author: David
 * @Date: Created in 20:22 2020/3/26
 * @Description: 数据表管理 只向视图层提供接口
 * @Modified By: 0.0.1
 * @Version:
 */
public interface TableManagerService {

    /**
     * 创建表接口
     * @param tableDesign 表结构
     * @param columns 字段结构
     * @param loginId 操作用户
     * @return
     * @throws SQLException
     */
    boolean makeTable(TableDesign tableDesign, List<ColumnDesign> columns, String loginId) throws SQLException;



    /**
     * 编辑表接口
     * @param tableDesign 表结构
     * @param loginId 操作用户
     * @return
     * @throws SQLException
     */
    boolean editTable(TableDesign tableDesign, String loginId) throws SQLException;

    

    /**
     * 删除表接口
     * @param design 表结构
     * @return
     */
    boolean dropTable(TableDesign design);

    /**
     * 修改表结构
     * @param tableDesign 表结构
     * @param columnDesigns 字段结构
     * @param loginId 操作用户
     * @return
     */
   // boolean modifyTable(TableDesign tableDesign, List<ColumnDesign> columnDesigns, String loginId);

    /**
     * 获取 table表结构
     * @param pageVo
     * @return
     */
    SimplePageResponseVo getTableDesign(SimplePageRequestVo pageVo);

    /**
     * 获取table 表字段详情
     * @param pageVo
     * @return
     */
    SimplePageResponseVo getColumnDesign(SimplePageRequestVo pageVo);

    /**
     * 上传校验文件
     * @param multipartFile
     * @param tableId
     */
    boolean uploadCheckFile(MultipartFile multipartFile, String tableId, String loginId) throws IOException;


    TableDesign flinOne(String tableId);
}
